home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
007
/
x68000.arc
/
SOURCE.ARC
/
LONGNUMB.DEF
< prev
next >
Wrap
Text File
|
1986-03-04
|
2KB
|
68 lines
DEFINITION MODULE LongNumbers;
(* Routines to handle HEX digits for the X68000 cross assembler. *)
(* All but LongPut and LongWrite are limited to 8 digit numbers. *)
FROM FileSystem IMPORT
File;
EXPORT QUALIFIED
LONG, LongClear, LongAdd, LongSub, LongInc, LongDec,
LongCompare, CardToLong, LongToCard, LongToInt, LongPut,
LongWrite, StringToLong, BinStrToLong, AddrBoundL, AddrBoundW;
CONST
DIGITS = 8;
BASE = 16;
TYPE
LONG = ARRAY [1..DIGITS] OF INTEGER;
PROCEDURE LongClear (VAR A : LONG);
(* Sets LONG to Zero *)
PROCEDURE LongAdd (A, B : LONG; VAR Result : LONG);
(* Add two LONGs, giving Result *)
PROCEDURE LongSub (A, B : LONG; VAR Result : LONG);
(* Subtract two LONGs (A - B), giving Result *)
PROCEDURE CardToLong (n : CARDINAL; VAR A : LONG);
(* Converts CARDINAL to LONG *)
PROCEDURE LongToCard (A : LONG; VAR n : CARDINAL) : BOOLEAN;
(* Converts LONG TO CARDINAL, returns FALSE if conversion impossible *)
PROCEDURE LongToInt (A : LONG; VAR n : INTEGER) : BOOLEAN;
(* Converts LONG to INTEGER, returns FALSE if conversion impossible *)
PROCEDURE LongInc (VAR A : LONG; n : CARDINAL);
(* Increment LONG by n *)
PROCEDURE LongDec (VAR A : LONG; n : CARDINAL);
(* Decrement LONG by n *)
PROCEDURE LongCompare (A, B : LONG) : INTEGER;
(* Returns: 0 if A = B, -1 if A < B, +1 if A > B *)
PROCEDURE LongPut (VAR f : File; A : ARRAY OF INTEGER; Size : CARDINAL);
(* Put LONG number in FILE f *)
PROCEDURE LongWrite (A : ARRAY OF INTEGER; Size : CARDINAL);
(* Write LONG number to console screen *)
PROCEDURE StringToLong (S : ARRAY OF CHAR; VAR A : LONG) : BOOLEAN;
(* Converts a string (in HEX, maximum of 32 bits) into a LONG *)
PROCEDURE BinStrToLong (S : ARRAY OF CHAR; VAR A : LONG) : BOOLEAN;
(* Converts a string (in Binary, maximum of 16 bits) into a LONG *)
PROCEDURE AddrBoundL (VAR A : LONG);
(* Forces Address to a 68000 long word boundary *)
PROCEDURE AddrBoundW (VAR A : LONG);
(* Forces Address to a 68000 word boundary *)
END LongNumbers.